使用教程
该教程为LattePanda Sigma使用DX-M1加速模块运行yolov5示例教程
硬件
- LattePanda Sigma x1
- DX-M1 AI加速器 M.2模块 x1
- M.2固态硬盘 x1
软件
- ubuntu 22.04系统
- dx_rt_npu_linux_driver_v1.8.0
- dx_com_M1_v2.1.0
- dx_app_v2.1.0
- dx_rt_v3.1.0
DX-M1调试
1、更新软件和安装ssh远程控制服务器
#更新源
sudo apt-get update
#安装ssh server
sudo apt-get install openssh-server
#安装 GCC 12
sudo apt install gcc-12 g++-12 -y
# 查看 GCC 版本
gcc --version
2、查看PCI接口信息
#查看PCI信息
lspci -v
#正常应输出类似以下信息"Processing accelerators",根据信息可以看到没有驱动信息
57:00.0 Processing accelerators: Device 1ff4:0000
Flags: fast devsel, IRQ 255
Memory at 6c400000 (64-bit, non-prefetchable) [disabled] [size=4M]
Memory at 6ca00000 (32-bit, non-prefetchable) [disabled] [size=1M]
Memory at 6c900000 (32-bit, non-prefetchable) [disabled] [size=1M]
Memory at 6c800000 (32-bit, non-prefetchable) [disabled] [size=1M]
Capabilities: <access denied>
#更新PCI数据库
sudo update-pciids
#显示PCI相关信息
lspci
#会得到如下信息(可以看到DEEPX的NPU已被识别)
57:00.0 Processing accelerators: DEEPX Co., Ltd. DX_M1
#解压驱动压缩包
tar -xzvf dx_rt_npu_linux_driver_v1.8.0.tar.gz
#安装构建工具
sudo apt install build-essential
#进入解压的module目录
cd dx_rt_npu_linux_driver/modules
#编译驱动
sudo ./build.sh
#正常会看到如下结果
- DEVICE : m1
- PCIE : deepx
- MODULE CONF : /home/abc/wx/dx_rt_npu_linux_driver/modules/dx_dma.conf
- ARCH (HOST) : x86_64
- KERNEL : /lib/modules/5.15.0-67-generic/build
- INSTALL : /lib/modules/5.15.0-67-generic/extra/
*** Build : ***
$ make DEVICE=m1 PCIE=deepx -j16
make -C /lib/modules/5.15.0-67-generic/build M=/home/abc/wx/dx_rt_npu_linux_driver/modules modules
make[1]: 进入目录“/usr/src/linux-headers-5.15.0-67-generic”
warning: the compiler differs from the one used to build the kernel
The kernel was built by: gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0
You are using: gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
CC [M] /home/abc/wx/dx_rt_npu_linux_driver/modules/rt/dxrt_drv.o
CC [M] /home/abc/wx/dx_rt_npu_linux_driver/modules/pci_deepx/dw-edma-pcie.o
CC [M] /home/abc/wx/dx_rt_npu_linux_driver/modules/rt/dxrt_drv_cdev.o
CC [M] /home/abc/wx/dx_rt_npu_linux_driver/modules/pci_deepx/dw-edma-core.o
CC [M] /home/abc/wx/dx_rt_npu_linux_driver/modules/rt/dxrt_drv_npu.o
CC [M] /home/abc/wx/dx_rt_npu_linux_driver/modules/pci_deepx/dw-edma-v0-core.o
CC [M] /home/abc/wx/dx_rt_npu_linux_driver/modules/rt/dxrt_drv_message.o
CC [M] /home/abc/wx/dx_rt_npu_linux_driver/modules/pci_deepx/dw-edma-v0-debugfs.o
CC [M] /home/abc/wx/dx_rt_npu_linux_driver/modules/rt/dxrt_drv_queue.o
CC [M] /home/abc/wx/dx_rt_npu_linux_driver/modules/pci_deepx/dw-edma-thread.o
CC [M] /home/abc/wx/dx_rt_npu_linux_driver/modules/rt/dxrt_drv_thread.o
CC [M] /home/abc/wx/dx_rt_npu_linux_driver/modules/pci_deepx/dx_util.o
CC [M] /home/abc/wx/dx_rt_npu_linux_driver/modules/pci_deepx/dx_cdev.o
CC [M] /home/abc/wx/dx_rt_npu_linux_driver/modules/pci_deepx/dx_sgdma_cdev.o
CC [M] /home/abc/wx/dx_rt_npu_linux_driver/modules/pci_deepx/dx_cdev_ctrl.o
CC [M] /home/abc/wx/dx_rt_npu_linux_driver/modules/pci_deepx/dx_cdev_events.o
CC [M] /home/abc/wx/dx_rt_npu_linux_driver/modules/pci_deepx/dx_sgdma.o
CC [M] /home/abc/wx/dx_rt_npu_linux_driver/modules/pci_deepx/dx_message.o
LD [M] /home/abc/wx/dx_rt_npu_linux_driver/modules/rt/dxrt_driver.o
LD [M] /home/abc/wx/dx_rt_npu_linux_driver/modules/pci_deepx/dx_dma.o
MODPOST /home/abc/wx/dx_rt_npu_linux_driver/modules/Module.symvers
CC [M] /home/abc/wx/dx_rt_npu_linux_driver/modules/pci_deepx/dx_dma.mod.o
CC [M] /home/abc/wx/dx_rt_npu_linux_driver/modules/rt/dxrt_driver.mod.o
LD [M] /home/abc/wx/dx_rt_npu_linux_driver/modules/pci_deepx/dx_dma.ko
LD [M] /home/abc/wx/dx_rt_npu_linux_driver/modules/rt/dxrt_driver.ko
BTF [M] /home/abc/wx/dx_rt_npu_linux_driver/modules/rt/dxrt_driver.ko
Skipping BTF generation for /home/abc/wx/dx_rt_npu_linux_driver/modules/rt/dxrt_driver.ko due to unavailability of vmlinux
BTF [M] /home/abc/wx/dx_rt_npu_linux_driver/modules/pci_deepx/dx_dma.ko
Skipping BTF generation for /home/abc/wx/dx_rt_npu_linux_driver/modules/pci_deepx/dx_dma.ko due to unavailability of vmlinux
make[1]: 离开目录“/usr/src/linux-headers-5.15.0-67-generic”
- SUCCESS
#安装驱动
sudo ./build.sh -c install
#正常会看到结果如下
- DEVICE : m1
- PCIE : deepx
- MODULE CONF : /home/abc/wx/dx_rt_npu_linux_driver/modules/dx_dma.conf
- ARCH (HOST) : x86_64
- KERNEL : /lib/modules/5.15.0-67-generic/build
- INSTALL : /lib/modules/5.15.0-67-generic/extra/
*** Build : install ***
$ make DEVICE=m1 PCIE=deepx install
make -C /lib/modules/5.15.0-67-generic/build M=/home/abc/wx/dx_rt_npu_linux_driver/modules modules_install
make[1]: 进入目录“/usr/src/linux-headers-5.15.0-67-generic”
arch/x86/Makefile:142: CONFIG_X86_X32 enabled but no binutils support
INSTALL /lib/modules/5.15.0-67-generic/extra/pci_deepx/dx_dma.ko
SIGN /lib/modules/5.15.0-67-generic/extra/pci_deepx/dx_dma.ko
INSTALL /lib/modules/5.15.0-67-generic/extra/rt/dxrt_driver.ko
SIGN /lib/modules/5.15.0-67-generic/extra/rt/dxrt_driver.ko
DEPMOD /lib/modules/5.15.0-67-generic
Warning: modules_install: missing 'System.map' file. Skipping depmod.
make[1]: 离开目录“/usr/src/linux-headers-5.15.0-67-generic”
- SUCCESS
*** Update : /lib/modules/5.15.0-67-generic/modules.dep ***
$ depmod -A
$ cp /home/abc/wx/dx_rt_npu_linux_driver/modules/dx_dma.conf /etc/modprobe.d/
#重启下板子,再查下PCI信息
lspci -v
#正常应该看到如下结果,可看到驱动已正常加载
57:00.0 Processing accelerators: DEEPX Co., Ltd. DX_M1
Flags: bus master, fast devsel, latency 0, IRQ 185
Memory at 6c400000 (64-bit, non-prefetchable) [size=4M]
Memory at 6ca00000 (32-bit, non-prefetchable) [size=1M]
Memory at 6c900000 (32-bit, non-prefetchable) [size=1M]
Memory at 6c800000 (32-bit, non-prefetchable) [size=1M]
Capabilities: <access denied>
Kernel driver in use: dx_dma_pcie
Kernel modules: dx_dma
DX-COM
模型转换工具,根据*.onnx和其对应的json配置,生成对应的*.dxnn(可被NPU识别的模型)
#解压压缩包
tar -xzvf dx_com_M1_v2.1.0.tar.gz
#安装依赖包
sudo apt-get install -y --no-install-recommends libgl1-mesa-glx libglib2.0-0
#进入解压的目录,编译即可
cd dx_com_M1_4K_v1.2.5
make
#正常的话会看到如下结果
dx_com/dx_com \
-m sample/MobileNetV1-1.onnx \
-c sample/MobileNetV1-1.json \
-o sample/MobileNetV1-1
Compiling Model : 100%|████████████████████████████████████████████████████████████████████████▉| 1.0/1.0 [00:08<00:00, 8.92s/model ]
dx_com/dx_com \
-m sample/ResNet50-1.onnx \
-c sample/ResNet50-1.json \
-o sample/ResNet50-1
Compiling Model : 100%|█████████████████████████████████████████████████████████████████████████| 1.0/1.0 [00:47<00:00, 47.87s/model ]
dx_com/dx_com \
-m sample/YOLOV5-1.onnx \
-c sample/YOLOV5-1.json \
-o sample/YOLOV5-1
Compiling Model : 100%|████████████████████████████████████████████████████████████████████████▉| 1.0/1.0 [00:38<00:00, 38.79s/model ]
相关资料
DEEPX_DX-COM_UM_v2.0.0_2025_08.pdf
[快速入门指南] DX-M1 Raspberry Pi 5 V0.10